package com.bjut.vendormgrsys.web.dto.campaign;

import com.bjut.vendormgrsys.web.dto.user.UserInfo;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.validation.annotation.Validated;

import java.util.List;

@Data
@Validated
public class CampaignInfo {
    @Schema(description = "用户id(修改上送，创建不需要)")
    @JsonProperty("id")
    private String id = null;

    @JsonProperty("creatorId")
    private String creatorId = null;

    @JsonProperty("creator")
    private UserInfo creator = null;

    @JsonProperty("name")
    private String name = null;

    @JsonProperty("address")
    private String address = null;

    @JsonProperty("courseNum")
    private String courseNum = null;

    @JsonProperty("courseTime")
    private String courseTime = null;

    @JsonProperty("highAge")
    private Integer highAge = null;

    @JsonProperty("lowAge")
    private Integer lowAge = null;

    @JsonProperty("parents")
    private String parents = null;

    @JsonProperty("recruitEndDate")
    private String recruitEndDate = null;

    @JsonProperty("recruitNum")
    private Integer recruitNum = null;

    @JsonProperty("subject")
    private String subject = null;

    @JsonProperty("suitable")
    private String suitable = null;

    @JsonProperty("startDate")
    private String startDate = null;

    @JsonProperty("teachers")
    private String teachers = null;

    @JsonProperty("volunteerNum")
    private Integer volunteerNum = null;

    @JsonProperty("consumeScore")
    private Integer consumeScore = null;

    @JsonProperty("volunteerScore")
    private Integer volunteerScore = null;

    @JsonProperty("endDate")
    private String endDate = null;

    @JsonProperty("campaignUserInfos")
    private List<CampaignUserInfo> campaignUserInfos = null;

    /**
     * 状态： 新建 NEW，招募期 RECRUITING，待开始 WAIT，进行中 PROCESSING，结束 COMPLETED，取消 CANCELLED
     */
    @JsonProperty("status")
    private String status = null;

    /**
     * 审核状态 会员使用 待审核 WAIT, 审核通过 PASS, 审核不通过NOTPASS
     */
    @JsonProperty("auditsStatus")
    private String auditsStatus = null;

    @JsonProperty("reason")
    private String reason = null;

    /**
     * 详细信息
     */
    @JsonProperty("content")
    private String content = null;

    /**
     * 创建时间
     */
    @JsonProperty("dateCreated")
    private Long dateCreated = null;

    /**
     * 最后修改时间
     */
    @JsonProperty("lastUpdated")
    private Long lastUpdated = null;

    public CampaignInfo() {
    }
}
